package org.cunamas.core.dto.mapper;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.cunamas.core.bean.AlmacenBean;
import org.cunamas.core.bean.CocinaBean;
import org.cunamas.core.bean.DocumentacionYRegistrosBean;
import org.cunamas.core.bean.MedidasSeguridadBean;
import org.cunamas.core.bean.RedAfiliadosBean;
import org.cunamas.core.bean.ServiciosAlimentariosBean;
import org.springframework.jdbc.core.RowMapper;

public class ServiciosAlimentariosMapper implements RowMapper<ServiciosAlimentariosBean>{

	public ServiciosAlimentariosBean mapRow(ResultSet rs, int rowNum) throws SQLException {
		ServiciosAlimentariosBean dto = new ServiciosAlimentariosBean();
		
		dto.setCodigo(rs.getString("CODUBIGEO"));
		dto.setValor(rs.getString("NIVEL"));
		dto.setDescripcion(rs.getString("DESCRIPCION"));
		
		dto.setNumeroComitesGestion(rs.getLong("COM"));
		
		CocinaBean cocinaBean = new CocinaBean();
		cocinaBean.setCodigo(rs.getString("CODUBIGEO"));
		cocinaBean.setValor(rs.getString("NIVEL"));
		cocinaBean.setDescripcion(rs.getString("DESCRIPCION"));
		cocinaBean.setC311(rs.getLong("c1"));
		cocinaBean.setC312(rs.getLong("c2"));
		cocinaBean.setC313(rs.getLong("c3"));
		cocinaBean.setC314(rs.getLong("c4"));
		cocinaBean.setC315(rs.getLong("c5"));
		cocinaBean.setC316(rs.getLong("c6"));
		cocinaBean.setCumple(rs.getLong("c7"));
		cocinaBean.setNoCumple(rs.getLong("c8"));
		cocinaBean.setNoEvalua(rs.getLong("c9"));
		cocinaBean.setPctCumple(rs.getBigDecimal("Pc10"));
		cocinaBean.setPctNoCumple(rs.getBigDecimal("Pc11"));
		cocinaBean.setOptimo(rs.getLong("O1"));
		cocinaBean.setBueno(rs.getLong("B1"));
		cocinaBean.setRegular(rs.getLong("R1"));
		cocinaBean.setDeficiente(rs.getLong("D1"));
		dto.setCocinaBean(cocinaBean);
		
		AlmacenBean almacenBean = new AlmacenBean();
		almacenBean.setCodigo(rs.getString("CODUBIGEO"));
		almacenBean.setValor(rs.getString("NIVEL"));
		almacenBean.setDescripcion(rs.getString("DESCRIPCION"));
		almacenBean.setC321(rs.getLong("c12"));
		almacenBean.setC322(rs.getLong("c13"));
		almacenBean.setC323(rs.getLong("c14"));
		almacenBean.setC324(rs.getLong("c15"));
		almacenBean.setC325(rs.getLong("c16"));
		almacenBean.setCumple(rs.getLong("c17"));
		almacenBean.setNoCumple(rs.getLong("c18"));
		almacenBean.setNoEvalua(rs.getLong("c19"));
		almacenBean.setPctCumple(rs.getBigDecimal("Pc20"));
		almacenBean.setPctNoCumple(rs.getBigDecimal("Pc21"));
		almacenBean.setOptimo(rs.getLong("O3"));
		almacenBean.setBueno(rs.getLong("B3"));
		almacenBean.setRegular(rs.getLong("R3"));
		almacenBean.setDeficiente(rs.getLong("D3"));
		dto.setAlmacenBean(almacenBean);
		
		MedidasSeguridadBean medidasSeguridadBean = new MedidasSeguridadBean();
		medidasSeguridadBean.setCodigo(rs.getString("CODUBIGEO"));
		medidasSeguridadBean.setValor(rs.getString("NIVEL"));
		medidasSeguridadBean.setDescripcion(rs.getString("DESCRIPCION"));
		medidasSeguridadBean.setC331(rs.getLong("c22"));
		medidasSeguridadBean.setC332(rs.getLong("c23"));
		medidasSeguridadBean.setC333(rs.getLong("c24"));
		medidasSeguridadBean.setC334(rs.getLong("c25"));
		medidasSeguridadBean.setC335(rs.getLong("c26"));
//		medidasSeguridadBean.setC336(rs.getLong("c27"));
		medidasSeguridadBean.setCumple(rs.getLong("c27"));
		medidasSeguridadBean.setNoCumple(rs.getLong("c28"));
		medidasSeguridadBean.setNoEvalua(rs.getLong("c29"));
		medidasSeguridadBean.setPctCumple(rs.getBigDecimal("Pc30"));
		medidasSeguridadBean.setPctNoCumple(rs.getBigDecimal("Pc31"));
		medidasSeguridadBean.setOptimo(rs.getLong("O5"));
		medidasSeguridadBean.setBueno(rs.getLong("B5"));
		medidasSeguridadBean.setRegular(rs.getLong("R5"));
		medidasSeguridadBean.setDeficiente(rs.getLong("D5"));
		dto.setMedidasSeguridadBean(medidasSeguridadBean);
		
		DocumentacionYRegistrosBean documentacionYRegistrosBean = new DocumentacionYRegistrosBean();
		documentacionYRegistrosBean.setCodigo(rs.getString("CODUBIGEO"));
		documentacionYRegistrosBean.setValor(rs.getString("NIVEL"));
		documentacionYRegistrosBean.setDescripcion(rs.getString("DESCRIPCION"));
		documentacionYRegistrosBean.setC341(rs.getLong("c32"));
		documentacionYRegistrosBean.setC342(rs.getLong("c33"));
		documentacionYRegistrosBean.setC343(rs.getLong("c34"));
		documentacionYRegistrosBean.setC344(rs.getLong("c35"));
		documentacionYRegistrosBean.setC345(rs.getLong("c36"));
		documentacionYRegistrosBean.setC346(rs.getLong("c37"));
		documentacionYRegistrosBean.setC347(rs.getLong("c38"));
		documentacionYRegistrosBean.setCumple(rs.getLong("c39"));
		documentacionYRegistrosBean.setNoCumple(rs.getLong("c40"));
		documentacionYRegistrosBean.setNoEvalua(rs.getLong("c41"));
		documentacionYRegistrosBean.setPctCumple(rs.getBigDecimal("Pc42"));
		documentacionYRegistrosBean.setPctNoCumple(rs.getBigDecimal("Pc43"));
		documentacionYRegistrosBean.setOptimo(rs.getLong("O7"));
		documentacionYRegistrosBean.setBueno(rs.getLong("B7"));
		documentacionYRegistrosBean.setRegular(rs.getLong("R7"));
		documentacionYRegistrosBean.setDeficiente(rs.getLong("D7"));
		dto.setDocumentacionYRegistrosBean(documentacionYRegistrosBean);
		
		RedAfiliadosBean redAfiliadosBean = new RedAfiliadosBean();
		redAfiliadosBean.setCodigo(rs.getString("CODUBIGEO"));
		redAfiliadosBean.setValor(rs.getString("NIVEL"));
		redAfiliadosBean.setDescripcion(rs.getString("DESCRIPCION"));
		redAfiliadosBean.setC351(rs.getLong("c44"));
		redAfiliadosBean.setC352(rs.getLong("c45"));
		redAfiliadosBean.setC353(rs.getLong("c46"));
		redAfiliadosBean.setC354(rs.getLong("c47"));
		redAfiliadosBean.setC355(rs.getLong("c48"));
		redAfiliadosBean.setCumple(rs.getLong("c49"));
		redAfiliadosBean.setNoCumple(rs.getLong("c50"));
		redAfiliadosBean.setNoEvalua(rs.getLong("c51"));
		redAfiliadosBean.setPctCumple(rs.getBigDecimal("Pc52"));
		redAfiliadosBean.setPctNoCumple(rs.getBigDecimal("Pc53"));
		redAfiliadosBean.setOptimo(rs.getLong("O9"));
		redAfiliadosBean.setBueno(rs.getLong("B9"));
		redAfiliadosBean.setRegular(rs.getLong("R9"));
		redAfiliadosBean.setDeficiente(rs.getLong("D9"));
		dto.setRedAfiliadosBean(redAfiliadosBean);
		
		dto.setTotalCumple(rs.getLong("Tcum"));
		dto.setTotalNoCumple(rs.getLong("Tncum"));
		dto.setTotalNoEvalua(rs.getLong("Tneval"));
		
		dto.setTotalPctCumple(rs.getBigDecimal("PTcum"));
		dto.setTotalPctNoCumple(rs.getBigDecimal("PTncu"));
		
		dto.setTotalOptimo(rs.getLong("OT"));
		dto.setTotalBueno(rs.getLong("BT"));
		dto.setTotalRegular(rs.getLong("RT"));
		dto.setTotalDeficiente(rs.getLong("DT"));
		
		return dto;
	}

}
